//
//  DCommonTool.h
//  DFrame
//
//  Created by DaiSuke on 16/8/29.
//  Copyright © 2016年 DaiSuke. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface DCommonTool : NSObject
/**
 *  获取到颜色UICOLOR
 *
 *  @param hexColor “987567”
 *
 *  @return UIColor*
 */
+ (UIColor *)TColor:(NSString *)hexColor;

/**
 *  获取到颜色UICOLOR
 *
 *  @param hexColor “987567”
 *  @param alpha    0 ~ 1
 *
 *  @return UIColor
 */
+ (UIColor *)TColor:(NSString *)hexColor colorAlpha:(CGFloat)alpha;

/**
 *  当然线程是否是主线程
 *
 *  @return YES主线程 | NO 子线程
 */
+ (BOOL)cureentThreadIsMain;

/**
 *  十六进制字符串转换为数值
 *
 *  @param hexString 十六进制字符串
 *
 *  @return 对于的数值
 */
+ (unsigned long)longNumberFromHexString:(NSString *)hexString;

///**
// *  十六进制转换为普通字符串
// *
// *  @param hexString 十六进制字符串
// *
// *  @return 普通字符串
// */
//+ (NSString *)stringFromHexString:(NSString *)hexString;

/**
 *  普通字符串成转换为十六进制字符串
 *
 *  @param hexString 普通字符串
 *
 *  @return 十六进制字符串
 */
+ (NSString *)hexStringFromString:(NSString *)string;

/**
 *  NSData类型转Int
 *
 *  @param aNumber NSData 二进制数据
 *
 *  @return int类型数字
 */
+ (int)intNumberFromData:(NSData *)data;

/**
 *  Int类型转NSData
 *
 *  @param aNumber int类型数字
 *
 *  @return NSData 二进制数据
 */
+ (NSData *)dataFromInt:(int)aNumber;

/**
 判断数字
 
 @param string
 @return
 */
+ (BOOL)isHasNum:(NSString *)string;

/**
 *  是否包含表情字符
 *
 *  @param string 字符串
 *
 *  @return 有：YES || 没有：NO
 */
+ (BOOL)isContainsEmoji:(NSString *)string;

/**
 *  计算指定时间与当前的时间差
 *
 *  @param compareDateString  时间字符串(格式:2013-3-2 8:28:53)
 *
 *  @return (比如，3分钟前，1个小时前，超过一天显示：一天前)
 *
 *  ADD BY ZHANGZH
 */
+ (NSString *)compareCurrentTime:(NSString *)compareDateString;

//格式话小数 四舍五入类型 “0.000”
+ (NSString *) decimalwithFormat:(NSString *)format  numberValue:(NSNumber *)numberValue;

#pragma mark - < 尺寸 > -


/**
 *  获取带间距内容的文本size
 *
 *  @param content  全部内容
 *  @param font     字体
 *  @param maxWidth 最大宽大
 *
 *  @return 文本size
 */
+ (CGSize)getContentSizeForHasLineSpaceByContent:(NSString *)content font:(UIFont *)font maxWidth:(CGFloat)maxWidth;

/**
 *  获取带间距内容的文本
 *
 *  @param content 全部内容
 *
 *  @return 组装后的文本
 */
+ (NSAttributedString *)getAttrLineSpaceForContent:(NSString *)content;

/**
 *  为内容添加下划线
 *
 *  @param content 内容
 *
 *  @return 组装后的文本
 */
+ (NSAttributedString *)getAttrDownLineForContent:(NSString *)content;

/**
 *  为内容添加下划线
 *
 *  @param content 内容
 *
 *  @return 组装后的文本
 */
+ (NSAttributedString *)getAttrDownLineForContent:(NSString *)content keyword:(NSString *)keyword keywordColor:(UIColor *)color;

/**
 *  获取内容的文本带高亮背景
 *
 *  @param keyword 高亮背景部分内容
 *  @param content 全部内容
 *  @param color   高亮的颜色
 *
 *  @return 组装后的文本
 */
+ (NSAttributedString *)getAttrForBGByKeyWord:(NSString *)keyword content:(NSString *)content heightLightColor:(UIColor *)color;

/**
 *  获取带高亮内容的文本
 *
 *  @param keyword 高亮部分内容
 *  @param content 全部内容
 *  @param color   高亮的颜色
 *
 *  @return 组装后的文本
 */
+ (NSAttributedString *)getAttrByKeyWord:(NSString *)keyword content:(NSString *)content heightLightColor:(UIColor *)color;

/**
 *  获取带高亮内容的文本
 *
 *  @param keywords 高亮部分内容(数组)
 *  @param content 全部内容
 *  @param color   高亮的颜色
 *
 *  @return 组装后的文本
 */
+ (NSAttributedString *)getAttrByKeyWords:(NSArray *)keywords content:(NSString *)content heightLightColor:(UIColor *)color;

/**
 *  获取带高亮内容的文本
 *
 *  @param keyword      高亮部分内容
 *  @param content      全部内容
 *  @param keywordColor 高亮的颜色
 *  @param contentColor 其余部分的颜色
 *  @param keyWordFont  高亮内容字体
 *  @param contentFont  其余部分字体
 *
 *  @return 组装后的文本
 */
+ (NSAttributedString *)getAttrSpaceByKeyWord:(NSString *)keyword content:(NSString *)content keywordColor:(UIColor *)keywordColor contentColor:(UIColor *)contentColor keywordFont:(UIFont *)keyWordFont contentFont:(UIFont *)contentFont;

+ (NSAttributedString *)getAttrSpaceByKeyWord1:(NSString *)keyword1 keyWord2:(NSString *)keyword2 content:(NSString *)content keyword1Color:(UIColor *)keyword1Color keyword2Color:(UIColor *)keyword2Color;

/**
 *  获取带高亮内容的文本
 *
 *  @param keywords 高亮部分内容(数组)
 *  @param content 全部内容
 *  @param color   高亮的颜色
 *  @param indent  首行缩进
 *
 *  @return 组装后的文本
 */
+ (NSAttributedString *)getAttrByKeyWords:(NSArray *)keywords content:(NSString *)content heightLightColor:(UIColor *)color indent:(CGFloat)indent;



/**
 *  获取带高亮内容的文本
 *
 *  @param keyword 高亮部分内容
 *  @param content 全部内容
 *  @param color   高亮的颜色
 *
 *  @return 组装后的文本
 */
+ (NSAttributedString *)getAttrNotSpaceByKeyWord:(NSString *)keyword content:(NSString *)content heightLightColor:(UIColor *)color;

/**
 *  获取带高亮内容的文本
 *
 *  @param keyword 高亮部分内容
 *  @param content 全部内容
 *  @param color   高亮的颜色
 *
 *  @return 组装后的文本
 */
+ (NSAttributedString *)getAttrNotSpaceByKeyWord:(NSString *)keyword content:(NSString *)content heightLightColor:(UIColor *)color keywordBgColor:(UIColor *)keyworBgColor;

/**
 *  获取带高亮内容的文本
 *
 *  @param keyword 高亮部分内容
 *  @param content 全部内容
 *  @param color   高亮的颜色
 *
 *  @return 组装后的文本
 */
+ (NSAttributedString *)getAttrNotSpaceByKeyWords:(NSArray *)keywords content:(NSString *)content heightLightColor:(UIColor *)color;


+ (NSAttributedString *)getAttrNotSpaceByKeyWord1:(NSString *)keyword1 keyWord2:(NSString *)keyword2 content:(NSString *)content keyword1Color:(UIColor *)keyword1Color keyword2Color:(UIColor *)keyword2Color;

/**
 *  获取带高亮内容的文本
 *
 *  @param keyword      高亮部分内容
 *  @param content      全部内容
 *  @param keywordColor 高亮的颜色
 *  @param contentColor 其余部分的颜色
 *  @param keyWordFont  高亮内容字体
 *  @param contentFont  其余部分字体
 *
 *  @return 组装后的文本
 */
+ (NSAttributedString *)getAttrNotSpaceByKeyWord:(NSString *)keyword content:(NSString *)content keywordColor:(UIColor *)keywordColor contentColor:(UIColor *)contentColor keywordFont:(UIFont *)keyWordFont contentFont:(UIFont *)contentFont;


/**
 *  获取带高亮内容的文本
 *
 *  @param keywords 高亮部分内容(数组)
 *  @param content 全部内容
 *  @param color   高亮的颜色
 *  @param keyWordFont  高亮内容字体
 *
 *  @return 组装后的文本
 */
+ (NSAttributedString *)getAttrByKeyWords:(NSArray *)keywords content:(NSString *)content heightLightColor:(UIColor *)color keywordFont:(UIFont *)keyWordFont;

/**
 *  获取带****的手机号码
 *
 *  @param mobile 原手机号码
 *
 *  @return 带****的手机号码
 */
+ (NSString *)getSubMobile:(NSString *)mobile;

/**
 *  判断是否为汉字
 *
 *  @param content 字符串
 *
 *  @return NO代表字符串包含不是汉字的字符，YES代表全部为汉字
 */
+ (BOOL)isChinese:(NSString *)content;

/**
 *  判断是否只包含字母和数字
 *
 *  @param content 字符串
 *
 *  @return NO代表字符串包含不是只包含字母和数字，YES代表只包含字母和数字
 */
+ (BOOL)isPassWord:(NSString *)content;

+ (NSString *)stringFromArray:(NSArray * )sources key:(NSString *)key isAdd:(BOOL)isAdd;



+ (NSDictionary *)getDictionaryByStrJson:(NSString *)strJson;

+ (NSString *)getStrJsonByDic:(NSDictionary *)dic;

+ (NSArray *)getArrByStrJson:(NSString *)strJson;

+ (NSString *)getStrJsonByArray:(NSArray *)arr;

+ (void)needQuake;

+(DeviceType)getDeviceType;

//获取聊天最大长度边距
+ (CGFloat)getChatMaxContentSpace;

//获取文本内容是否含有电话号码
+ (NSMutableArray *)getMobileByStr:(NSString *)strContent;

//获取并解析button/json内容
//+ (NSString *)getButtonJsonContentByStr:(NSString *)strContent;


+ (NSString *)intToBinary:(int)intValue;



@end
